package com.test.daily.leetcode.y2022.m06.day0617.v01;

/**
 * @descriptions:
 * @author: Tom
 * @date: 2022/6/17 下午 09:38
 * @version: 1.0
 */
public class Soution {
    // 請你將該數組中出現的每一個零都複寫一邊
    // 並將其餘元素右移
    public void duplicateZeros(int[] arr) {
        // 原数组 left
        // 答案数组 right
       int left = 0, right = 0;
       int N = arr.length;
       // 找到答案数组 对应的 原数组位置
       while(right < N){
           if(arr[left] == 0){
               right++;
           }
           left++; right++;
       }
       // 执行完循环, 原数组越界1位
       left--; right--;
       while(right >= 0){
           // 执行完循环,答案数组可能多越界1位
           if(right < N){
               arr[right] = arr[left];
           }
           if(arr[left] == 0 && --right >= 0){
               arr[right] = 0;
           }
           left--; right--;
       }
    }
}
